
// 示例使用包含模块的 Vuex Store
const store = new Store({
  state: {
    count: 0,
  },
  mutations: {// pinia去掉了mutation，确实觉得没啥用
    increment(state, payload) {
      state.count += payload.amount || 1;
    },
  },
  actions: {
    asyncIncrement({ commit }, payload) {
      setTimeout(() => {
        commit('increment', payload);
      }, 1000);
    },
  },
  getters: {
    getCount(state) {
      return state.count;
    },
  },
  modules: {
    moduleA: {
      state: {
        value: 'Module A value',
      },
      mutations: {
        updateValue(state, payload) {
          state.value = payload.newValue;
        },
      },
      getters: {
        getValue(state) {
          return state.value;
        },
      },
    },
    // 可以添加更多的模块
  },
});

// 示例使用
console.log(store.state); // 输出整个状态树

store.commit('increment', { amount: 5 });
console.log(store.state.count); // 输出改变后的 count

store.dispatch('asyncIncrement', { amount: 10 });
console.log(store.state.count); // 输出异步改变后的 count（异步操作未完成）
setTimeout(() => {
  console.log(store.state.count); // 输出异步改变后的 count（异步操作完成）
}, 1500);

console.log(store.getters.getCount); // 输出通过 getter 获取的 count

store.commit('moduleA/updateValue', { newValue: 'Updated value' });
console.log(store.state.moduleA.value); // 输出 Module A 的更新后的值